EgeriaのHands-On Labをやってみた 〜データカタログ管理編〜

EgeriaのHands-On Labをやってみた 〜データカタログ管理編〜

Clock Icon2021.07.19

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

本記事では、メタデータ・ガバナンスを実現するOSSプロジェクトEgeriaのハンズオンを実施していきます。Egeriaの概要やセットアップ方法は下記事を参照ください。

2021年6月現在の最新バージョンEgeria 2.10では、5つのハンズオンが用意されており、組織内でどういう立場の人が実施すべきかペルソナが用意されています。

  • Administration Labs
    • Gary Geeke(ITインフラのリーダー)
    • Egeriaのプラットフォームとサーバーをどのように管理していくか?
  • Asset Management Labs
    • Peter Profile(アナリスト)、Erin(アーキテクト)
    • Coco Pharmaceuticalのアセットのカタログを構築・管理
    • Callie Quartile(データ・サイエンティスト)
    • 必要なアセットの場所を特定して分析に使用するために、カタログを使用する
  • Information Architecture Labs
    • Erin
    • Coco Pharmaceuticalsの情報標準をセットアップする
  • Conformance Testing Labs
    • Polly Tasker(テスター)
    • Egeriaの適合テスト(conformance test)を実施し、メタデータサーバーがEgeriaのオープンメタデータプロトコルに適合するか確認する
  • Asset UI Labs
    • Callie Quartile
    • メタデータのフローを理解するために、EgeriaのUIを利用して調査を実施す

今回はAsset Management Labsを実施していきます。EgeriaのハンズオンはJupyter Notebookで進められるようにできているので、本記事ではコードは掲載しません。どんなことが書いてあるのか?や、何がわかったのか?などを中心にダイジェストをまとめていきます。

準備

上記事のセットアップを完了させ、以下のログが表示されていることを確認して下さい。

%run common/environment-check.ipynb

Checking OMAG Server Platform availability...
    Core Platform is active
        Checking OMAG Server cocoMDS2
           ... cocoMDS2 is configured
           ... cocoMDS2 is active - ready to begin
        Checking OMAG Server cocoMDS3
           ... cocoMDS3 is configured
           ... cocoMDS3 is active - ready to begin
        Checking OMAG Server cocoMDS5
           ... cocoMDS5 is configured
           ... cocoMDS5 is active - ready to begin
        Checking OMAG Server cocoMDS6
           ... cocoMDS6 is configured
           ... cocoMDS6 is active - ready to begin
    Data Lake Platform is active
        Checking OMAG Server cocoMDS1
           ... cocoMDS1 is configured
           ... cocoMDS1 is active - ready to begin
        Checking OMAG Server cocoMDS4
           ... cocoMDS4 is configured
           ... cocoMDS4 is active - ready to begin
        Checking OMAG Server cocoView1
           ... cocoView1 is configured
           ... cocoView1 is active - ready to begin
    Dev Platform is active
        Checking OMAG Server cocoMDSx
           ... cocoMDSx is configured
           ... cocoMDSx is active - ready to begin
Done.

Asset Management Labs

Asset Management Labsでは、以下の4つを実施していきます。

  • Building a Data Catalog
  • Automated Curation Lab
  • Improving Data Quality Lab

Building a Data Catalog

このハンズオンでは、分散型データカタログを構築し、サーバー間で相互にカタログに対してフィードバック(コメント)を付与する検証を行います。また、ガバナンス・ゾーンのどのようにアセットグループに適用され、参照できるユーザーをどう管理するかについても触れていきます。

  • ビジネストランスフォーメーションの一貫として、Coco Pharmaceuticalsではデータレイクを構築
  • 組織間やビジネスパートナー間で、検索・分析・交換するためにデータを管理
  • → センシティブデータや規制データを含め、データレイクでは様々なタイプのデータを扱えるようにデザインする必要がある
  • PeterとErinは病院から受け取った新しいデータセットをカタログ化しようとしている
    • データセットは、その病院が参加している臨床試験の一部のデータ
  • PeterはcocoMDS1というデータレイク運用のメタデータサーバーを使っている
    • このサーバーはData Lake OMAG Server Platform上にホストされている
  • Peterは新しいデータの概要をカタログに入力している
    • データの概要はAssetsとしてカタログに保存される
  • Assetは価値の真のリソース(a real resource of value)とし、適切に管理・利用されているか確保するために一元管理される必要がある
  • 全てのAssetは、そのリソースの所有者(人 or チーム)と紐づく
  • 所有者の役割は、真のリソースがどのように管理されるべきなのかを定義しするための正しい設定でAssetをセットアップすること
    • この管理は、真のリソースをホストして処理するツールやプラットフォーム、エンジンによって行われる
    • これらの技術がオープン・メタデータ・リポジトリと接続できる場合、設定を直接読み込んで正しいアクションが取れるようになる
    • これらの技術が接続できない場合、Egeriaのガバナンスサーバー側から、それらの技術に合わせてAssetsをpushする
  • Peterは新しいAssetの所有者となり、Asset Owner Open Metadata Access Service (OMAS) APIでカタログ上でAssetをセットアップします
  • file://secured/research/clinical-trials/drop-foot/DropFootMeasurementsWeek1.csvにある1週目のAssetデータを登録する
    • ディレクトリ構造もそのままメタデータとして反映される仕様

  • 登録したAsset情報を内容表示する
    • 5 Assetsの内、4つがディレクトリ、1つがファイル
    • ディレクトリ自体は、厳密にはAssetではなく、SoftwareServerCapability
5 assets found:
 
file://secured/research
FileFolder 	| bb32a786-d6ef-437a-937b-2987d85a169b | file://secured/research
file://secured/research/clinical-trials
FileFolder 	| be6904d1-3c8e-4f22-b084-507c6340c7d3 | file://secured/research/clinical-trials
file://secured
FileFolder 	| 517b92d5-2f06-471b-afd8-9b7639418668 | file://secured
file://secured/research/clinical-trials/drop-foot
FileFolder 	| a9276d64-1d59-49a8-9e93-a9ac137c83ab | file://secured/research/clinical-trials/drop-foot
file://secured/research/clinical-trials/drop-foot/DropFootMeasurementsWeek1.csv
CSVFile 	| e3830d70-37a0-4df3-bbdd-6f6560121dd7 | file://secured/research/clinical-trials/drop-foot/DropFootMeasurementsWeek1.csv

--------------------------------------

secured/research [bb32a786-d6ef-437a-937b-2987d85a169b]
  qualifiedName: file://secured/research
  type:          FileFolder [DataStore, Asset, Referenceable, OpenMetadataRoot]
  zones:         quarantine

--------------------------------------

secured/research/clinical-trials [be6904d1-3c8e-4f22-b084-507c6340c7d3]
  qualifiedName: file://secured/research/clinical-trials
  type:          FileFolder [DataStore, Asset, Referenceable, OpenMetadataRoot]
  zones:         quarantine

--------------------------------------

secured [517b92d5-2f06-471b-afd8-9b7639418668]
  qualifiedName: file://secured
  type:          FileFolder [DataStore, Asset, Referenceable, OpenMetadataRoot]
  zones:         quarantine

--------------------------------------

secured/research/clinical-trials/drop-foot [a9276d64-1d59-49a8-9e93-a9ac137c83ab]
  qualifiedName: file://secured/research/clinical-trials/drop-foot
  type:          FileFolder [DataStore, Asset, Referenceable, OpenMetadataRoot]
  zones:         quarantine

--------------------------------------

Week 1: Drop Foot Clinical Trial Measurements [e3830d70-37a0-4df3-bbdd-6f6560121dd7]
  qualifiedName: file://secured/research/clinical-trials/drop-foot/DropFootMeasurementsWeek1.csv
  description:   One week's data covering foot angle, hip displacement and mobility measurements.
  type:          CSVFile [DataFile, DataStore, Asset, Referenceable, OpenMetadataRoot]
  zones:         quarantine

--------------------------------------
  • 続けて2週目・3週目のAssetデータも登録する
Request to create the week 2 Asset responded with: 
[
    "7511685d-4f26-476a-847b-995b56136b39",
    "517b92d5-2f06-471b-afd8-9b7639418668",
    "bb32a786-d6ef-437a-937b-2987d85a169b",
    "be6904d1-3c8e-4f22-b084-507c6340c7d3",
    "a9276d64-1d59-49a8-9e93-a9ac137c83ab",
    "13c764d7-66f6-4455-9844-a32e36b27804"
]

Request to create the week 3 Asset responded with: 
[
    "7511685d-4f26-476a-847b-995b56136b39",
    "517b92d5-2f06-471b-afd8-9b7639418668",
    "bb32a786-d6ef-437a-937b-2987d85a169b",
    "be6904d1-3c8e-4f22-b084-507c6340c7d3",
    "a9276d64-1d59-49a8-9e93-a9ac137c83ab",
    "d37e2fc7-74b6-4aa6-a1de-81c1fe92dccf"
]
 
Summary of the assets so far:
 Asset 1 GUID is: e3830d70-37a0-4df3-bbdd-6f6560121dd7
 Asset 2 GUID is: 13c764d7-66f6-4455-9844-a32e36b27804
 Asset 3 GUID is: d37e2fc7-74b6-4aa6-a1de-81c1fe92dccf
  • ディレクトリが共通している場合、メタデータサーバー内でよしなにまとめられる
7 assets found:
 
file://secured/research
FileFolder 	| bb32a786-d6ef-437a-937b-2987d85a169b | file://secured/research
file://secured/research/clinical-trials
FileFolder 	| be6904d1-3c8e-4f22-b084-507c6340c7d3 | file://secured/research/clinical-trials
file://secured/research/clinical-trials/drop-foot/DropFootMeasurementsWeek3.csv
CSVFile 	| d37e2fc7-74b6-4aa6-a1de-81c1fe92dccf | file://secured/research/clinical-trials/drop-foot/DropFootMeasurementsWeek3.csv
file://secured
FileFolder 	| 517b92d5-2f06-471b-afd8-9b7639418668 | file://secured
file://secured/research/clinical-trials/drop-foot
FileFolder 	| a9276d64-1d59-49a8-9e93-a9ac137c83ab | file://secured/research/clinical-trials/drop-foot
file://secured/research/clinical-trials/drop-foot/DropFootMeasurementsWeek1.csv
CSVFile 	| e3830d70-37a0-4df3-bbdd-6f6560121dd7 | file://secured/research/clinical-trials/drop-foot/DropFootMeasurementsWeek1.csv
file://secured/research/clinical-trials/drop-foot/DropFootMeasurementsWeek2.csv
CSVFile 	| 13c764d7-66f6-4455-9844-a32e36b27804 | file://secured/research/clinical-trials/drop-foot/DropFootMeasurementsWeek2.csv

--------------------------------------

secured/research [bb32a786-d6ef-437a-937b-2987d85a169b]
  qualifiedName: file://secured/research
  type:          FileFolder [DataStore, Asset, Referenceable, OpenMetadataRoot]
  zones:         quarantine

--------------------------------------

secured/research/clinical-trials [be6904d1-3c8e-4f22-b084-507c6340c7d3]
  qualifiedName: file://secured/research/clinical-trials
  type:          FileFolder [DataStore, Asset, Referenceable, OpenMetadataRoot]
  zones:         quarantine

--------------------------------------

Week 3: Drop Foot Clinical Trial Measurements [d37e2fc7-74b6-4aa6-a1de-81c1fe92dccf]
  qualifiedName: file://secured/research/clinical-trials/drop-foot/DropFootMeasurementsWeek3.csv
  description:   One week's data covering foot angle, hip displacement and mobility measurements.
  type:          CSVFile [DataFile, DataStore, Asset, Referenceable, OpenMetadataRoot]
  zones:         quarantine

--------------------------------------

secured [517b92d5-2f06-471b-afd8-9b7639418668]
  qualifiedName: file://secured
  type:          FileFolder [DataStore, Asset, Referenceable, OpenMetadataRoot]
  zones:         quarantine

--------------------------------------

secured/research/clinical-trials/drop-foot [a9276d64-1d59-49a8-9e93-a9ac137c83ab]
  qualifiedName: file://secured/research/clinical-trials/drop-foot
  type:          FileFolder [DataStore, Asset, Referenceable, OpenMetadataRoot]
  zones:         quarantine

--------------------------------------

Week 1: Drop Foot Clinical Trial Measurements [e3830d70-37a0-4df3-bbdd-6f6560121dd7]
  qualifiedName: file://secured/research/clinical-trials/drop-foot/DropFootMeasurementsWeek1.csv
  description:   One week's data covering foot angle, hip displacement and mobility measurements.
  type:          CSVFile [DataFile, DataStore, Asset, Referenceable, OpenMetadataRoot]
  zones:         quarantine

--------------------------------------

Week 2: Drop Foot Clinical Trial Measurements [13c764d7-66f6-4455-9844-a32e36b27804]
  qualifiedName: file://secured/research/clinical-trials/drop-foot/DropFootMeasurementsWeek2.csv
  description:   One week's data covering foot angle, hip displacement and mobility measurements.
  type:          CSVFile [DataFile, DataStore, Asset, Referenceable, OpenMetadataRoot]
  zones:         quarantine

--------------------------------------
  • 一方、Erinはガバナンスチームの一員であり、cocoMDS2サーバーを用いてメタデータにアクセスしようとしている
  • PeterのcocoMDS1とErinのcocoMDS2は、同じCohortcocoCohortに所属する
    • → 互いにメタデータを共有しあっている関係にある
  • Erinは共有しているPeterのAssetに対して、以下のようにコメントできる
 
1 comment found:
  comment type: STANDARD_COMMENT
  comment text: This file has much less data than normal.  Did the hospital provide any additional information about this batch to explain it?
  created by:   erinoverview
  public:       True
  • Peter側も以下のように返信可能
1 comment found:
  comment type: STANDARD_COMMENT
  comment text: I checked back with Bobbie Records and they had an air conditioning failure that caused them to cancel patient appointments for 2 days - hence less data.  They are working to catch up on their waiting list so expect increased data for the next few weeks.
  created by:   peterprofile
  public:       True
  • このようにEgeriaは分散型データカタログを実現している

  • 最後に、組織がどのようにAssetの見える範囲をコントロールするかについて
  • PeterとErinの元に、リサーチチームでデータサイエンティストをやっているCallieが加わりました
  • Callieは臨床試験のファイルが到着したと聞いて、すぐに分析に取り掛かろうとしている
  • CallieはcocoMDS3サーバーを使用してファイルを探したが、何も見つからなかった
    • cocoMDS1quarantine zoneと呼ばれるGovernance zoneでAssetを作成しているが、cocoMDS3quarantine zoneへのアクセス権がない
    • PeterはCallieがアクセスできるように、Callieのがアクセスできるゾーンであるdata lake zoneにもAssetを登録する必要がある
Setting owner on Asset 1 to tanyatidie ...
Setting owner on Asset 2 to tanyatidie ...
Setting owner on Asset 3 to tanyatidie ...
Setting governance zones on Asset 1 ...
Setting governance zones on Asset 2 ...
Setting governance zones on Asset 3 ...
  • 補足
    • Repository services: サーバー間のメタデータの交換を行うサーバー
    • Platform services: cocoMDS1やcocoMDS2などの、Egeriaサーバーを稼働するためのプラットフォーム

Automated Curation Lab

このハンズオンでは、先ほどPeterとErinが操作していたカタログ化の手続きを自動化していきます。

  • Coco Pharmaceuticalsでは、Oak Dene HospitalとOld Market Hospitalという2つの病院と臨床試験を行ってる
  • 毎週、2つの病院が試験に参加した患者の診断情報をCoco Pharmaceuticalsへ送る
  • 診断情報は、Coco Pharmaceuticalのランディング用のフォルダへセキュアに転送されるCSVファイル
  • これらのファイルは、データレイクへコピーされ、臨床試験に参加したスタッフのみに見えるようカタログ化される
  • これらのファイルの関係性(リネージ)を維持することも重要
  • PeterとErinは、自動化要件を以下のように定義
    • ファイルがランディングエリアに存在する時間は最小限に抑える
    • 新しいファイルが到着したらすぐに、以下の項目をカタログ化する
      • 概要
      • データサイエンティストがコンテンツにアクセスするための接続情報
      • カラムの詳細
      • そのファイルが見えるGovernance zones
      • 所有者
      • 起源
    • カタログ処理が完了するまで、どのデータレイクユーザーもファイルへのアクセスは不可
    • それぞれの臨床試験のリネージを記録し、どの病院からきたのかを把握する
  • exchangeDL01: ファイルのテクニカルメタデータをキャプチャするIntegration Daemon
  • governDL01: データレイクへのファイル移動や、メタデータの増大、リネージの生成を管理するEngine Host Server
  • 図にすると以下のとおり
      1. Governance Action ServiceのMove/Copy Fileで、ファイルを持ってくる
      1. ランディングエリアで、ファイルをカタログ化するためのテンプレートを作成する
      1. ランディングフォルダにファイルが現れたら、Governance Action Processをトリガする
      1. Governance Action Processで、ファイルをデータレイクフォルダに移動する
      1. データレイクフォルダで、ファイルをカタログ化するためのテンプレートを作成する
      1. Governance Action Serviceで、メタデータを拡充させる

  • 各サーバーの関係性は以下の通り

  • まずは、でフォルダ内に存在しているファイルをカタログ化するIntegration Daemonを操作する
  • Integration Daemonのステータスを確認
One integration service defined for integration daemon exchangeDL01
 
Integration Service: Files Integrator OMIS
  Integration Connector Reports: 
      Integration Connector: OakDeneLandingAreaFilesMonitor
         status:                   FAILED
         failingExceptionMessage:  BASIC-FILES-INTEGRATION-CONNECTORS-404-001 The directory named data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot does not exist
      Integration Connector: OldMarketLandingAreaFilesMonitor
         status:                   FAILED
         failingExceptionMessage:  BASIC-FILES-INTEGRATION-CONNECTORS-404-001 The directory named data/landing-area/hospitals/old-market/clinical-trials/drop-foot does not exist
      Integration Connector: DropFootClinicalTrialResultsFolderMonitor
         status:                   FAILED
         failingExceptionMessage:  BASIC-FILES-INTEGRATION-CONNECTORS-404-001 The directory named data/data-lake/research/clinical-trials/drop-foot/weekly-measurements does not exist
  • 監視対象のディレクトリ名(フォルダ名)が存在していないため、3つのファイルコネクタが全てFAILEDとなっている
  • Move/Copy File Governance Action Serviceで、病院からランディングエリアのフォルダへファイル転送をシミュレートする
    • このサービスは、Governance Action Open Metadata Engine Service (OMES)がサポートされるGovernance Engineの中で実行される
    • APIで使用可能
    • コネクタ(コネクション・オブジェクト)として実行される
    • 細かく設定が可能
Move/Copy File Governance Action Service:
   connectorType: 
       guid:                              e2a14ca8-57b1-48d7-9cc4-d0b44983ca79
       qualifiedName:                     Egeria:GovernanceActionService:Provisioning:MoveCopyFile
       displayName:                       Move or Copy File Governance Action Service
       description:                       Provisioning Governance Action Service that moves or copies files on request.
       connectorProviderClassName:        org.odpi.openmetadata.adapters.connectors.governanceactions.provisioning.MoveCopyFileGovernanceActionProvider
       recognizedConfigurationProperties: 
          - targetFileNamePattern
          - noLineage
          - topLevelProcessQualifiedName
          - topLevelProcessTemplateQualifiedName
          - destinationFileTemplateQualifiedName
          - destinationFolder
          - topLevelProcessLineageOnly
          - lineageFromSourceFolderOnly
          - lineageToDestinationFolderOnly
   supportedRequestTypes: 
      - copy-file
      - move-file
      - delete-file
   supportedRequestParameters: 
      - sourceFile
      - destinationFolder
   supportedActionTargetNames: 
      - sourceFile
      - destinationFolder
   supportedGuards: 
      - provisioning-complete
      - provisioning-failed
  • ファイル転送のシミュレーションの前に、Move/Copy Fileの設定を行う
  • 下の図とスニペットはgovernDL01サーバーで設定した3つのGovernance Engineの関係性について

3 governance engines defined for engine host server governDL01
 
  Governance Engine: AssetQuality
     supporting service: Asset Analysis OMES
     status:             ASSIGNED
 
  Governance Engine: AssetDiscovery
     supporting service: Asset Analysis OMES
     status:             ASSIGNED
 
  Governance Engine: AssetGovernance
     supporting service: Governance Action OMES
     status:             ASSIGNED
  • Engine HostがまだcocoMDS2サーバーから設定情報を取得できていないので、AssetGovernanceに対するGovernance Engineの定義を加える
3 governance engines defined for engine host server governDL01
 
  Governance Engine: AssetQuality
     supporting service: Asset Analysis OMES
     status:             ASSIGNED
 
  Governance Engine: AssetDiscovery
     supporting service: Asset Analysis OMES
     status:             ASSIGNED
 
  Governance Engine: AssetGovernance
     type:               GovernanceActionEngine
     supporting service: Governance Action OMES
     status:             CONFIGURING
     guid:               98c156b5-d8fe-4c62-ab34-f25140572f48
     description:        Monitors, validates and enriches metadata relating to assets.
  • AssetGovernanceのステータスがCONFIGURINGとなる
  • 次に、Move/Copy Fileの概要をcocoMDS2に加える
    • Governance Serviceの定義を作成して登録する
    • 登録の際に、Governance Engineへの呼び出しをGovernance Action Serviceへの呼び出しに変換するための、一つ以上のRequest Typeのマッピングうぃ作成する
  • 下図は、Governance Engine、Governance Service、Request Typeの関係性を表した図

  • Governance Serviceの定義を作成し、AssetGovernance GovernanceEngineの定義に追加する
The guid for the ftp-governance-action-service governance service is: 8c66dd3f-99b3-4203-b756-cdff119c9848
Service registered as: copy-file
  • Governance Serviceが登録されると、governDL01のGovernance EngineのステータスがRUNNINGへ変わる
    • → Governance EngineのRequest Typeが一覧として見えるようになる
3 governance engines defined for engine host server governDL01
 
  Governance Engine: AssetQuality
     supporting service: Asset Analysis OMES
     status:             ASSIGNED
 
  Governance Engine: AssetDiscovery
     supporting service: Asset Analysis OMES
     status:             ASSIGNED
 
  Governance Engine: AssetGovernance
     type:               GovernanceActionEngine
     supporting service: Governance Action OMES
     status:             RUNNING
     guid:               98c156b5-d8fe-4c62-ab34-f25140572f48
     description:        Monitors, validates and enriches metadata relating to assets.
     requestTypes:       
       - copy-file
  • 定義したGovernance Action Serviceは、Governance Engine OMAS、今回ではcocoMDS2を通して呼ばれる
  • API呼び出しは、Governance Engineを稼働している全てのEngine Hostに送信されるイベントとなる
    • 今回はEngine Hostが1つだけのため、リクエストはgovernDL01上で処理される
  • 実際にGovernance Actionを実行した結果が以下の通り
 ... Waiting for completion status change
 ... Waiting for completion status change
 ... Waiting for completion status change

{
    "class": "GovernanceActionProperties",
    "qualifiedName": "FTP Oak Dene Week 1",
    "domainIdentifier": 0,
    "governanceEngineGUID": "98c156b5-d8fe-4c62-ab34-f25140572f48",
    "governanceEngineName": "AssetGovernance",
    "requestType": "copy-file",
    "requestParameters": {
        "destinationFolder": "data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot",
        "sourceFile": "./sample-data/oak-dene-drop-foot-weekly-measurements/week1.csv"
    },
    "actionStatus": "ACTIONED",
    "startTime": "2021-07-04T04:39:03.887+00:00",
    "processingEngineUserId": "governDL01npa",
    "completionTime": "2021-07-04T04:39:08.243+00:00",
    "completionGuards": [
        "provisioning-complete"
    ]
}
  • 再度コネクタのステータスを確認すると、FAILEDからRUNNINGへと変わっている
One integration service defined for integration daemon exchangeDL01
 
Integration Service: Files Integrator OMIS
  Integration Connector Reports: 
      Integration Connector: OakDeneLandingAreaFilesMonitor
         status:                   RUNNING
         lastStatusChange:         2021-07-04T04:42:15.883+00:00
         lastRefreshTime:          2021-07-04T04:42:22.246+00:00
         minMinutesBetweenRefresh: 10
      Integration Connector: OldMarketLandingAreaFilesMonitor
         status:                   FAILED
         failingExceptionMessage:  BASIC-FILES-INTEGRATION-CONNECTORS-404-001 The directory named data/landing-area/hospitals/old-market/clinical-trials/drop-foot does not exist
      Integration Connector: DropFootClinicalTrialResultsFolderMonitor
         status:                   FAILED
         failingExceptionMessage:  BASIC-FILES-INTEGRATION-CONNECTORS-404-001 The directory named data/data-lake/research/clinical-trials/drop-foot/weekly-measurements does not exist
  • コネクタはディレクトリに配置される全てのファイルをカタログ化するようになる
  • Governance Actionで配置したweek1.csvがカタログから参照できるようになっている
6 assets found:
 
/deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week1.csv
CSVFile 	| 86c7713d-3b60-4715-963b-45c0356fa9ef | /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week1.csv
deployments/data/landing-area/hospitals
FileFolder 	| 5bc2cef1-485b-474d-9410-2bd90a637bff | deployments/data/landing-area/hospitals
deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot
FileFolder 	| d628c37e-467c-4eeb-a71c-cb1386c08f81 | deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot
deployments/data/landing-area
FileFolder 	| c0dafe80-1a58-48cf-92bc-f172058d1fd1 | deployments/data/landing-area
deployments/data/landing-area/hospitals/oak-dene
FileFolder 	| 602b186e-b1d0-4612-87ad-c69def6242fa | deployments/data/landing-area/hospitals/oak-dene
deployments/data/landing-area/hospitals/oak-dene/clinical-trials
FileFolder 	| c2b56902-9945-4c46-95be-e3d892126fa8 | deployments/data/landing-area/hospitals/oak-dene/clinical-trials

--------------------------------------

week1.csv [86c7713d-3b60-4715-963b-45c0356fa9ef]
  qualifiedName: /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week1.csv
  type:          CSVFile [DataFile, DataStore, Asset, Referenceable, OpenMetadataRoot]
  zones:         quarantine

--------------------------------------

deployments/data/landing-area/hospitals [5bc2cef1-485b-474d-9410-2bd90a637bff]
  qualifiedName: deployments/data/landing-area/hospitals
  type:          FileFolder [DataStore, Asset, Referenceable, OpenMetadataRoot]
  zones:         quarantine

--------------------------------------

deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot [d628c37e-467c-4eeb-a71c-cb1386c08f81]
  qualifiedName: deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot
  type:          FileFolder [DataStore, Asset, Referenceable, OpenMetadataRoot]
  zones:         quarantine

--------------------------------------

deployments/data/landing-area [c0dafe80-1a58-48cf-92bc-f172058d1fd1]
  qualifiedName: deployments/data/landing-area
  type:          FileFolder [DataStore, Asset, Referenceable, OpenMetadataRoot]
  zones:         quarantine

--------------------------------------

deployments/data/landing-area/hospitals/oak-dene [602b186e-b1d0-4612-87ad-c69def6242fa]
  qualifiedName: deployments/data/landing-area/hospitals/oak-dene
  type:          FileFolder [DataStore, Asset, Referenceable, OpenMetadataRoot]
  zones:         quarantine

--------------------------------------

deployments/data/landing-area/hospitals/oak-dene/clinical-trials [c2b56902-9945-4c46-95be-e3d892126fa8]
  qualifiedName: deployments/data/landing-area/hospitals/oak-dene/clinical-trials
  type:          FileFolder [DataStore, Asset, Referenceable, OpenMetadataRoot]
  zones:         quarantine

--------------------------------------
  • カタログ化では、通常はファイルシステムから取得できる最低限の情報しか定義できない
    • → コネクタにテンプレートを用意することで、期限や信頼性、スキーマ情報などを含めることができる
    • Templated cataloging
  • exchangeDL01のコネクタは以下の通り
Data Files Monitor Integration Connector Type:
   guid:                              bbbd2213-dee1-4a21-8951-68f0f6d35eb7
   qualifiedName:                     Egeria:IntegrationConnector:Files:DataFilesMonitor
   displayName:                       Data Files Monitor Integration Connector
   description:                       Connector supports cataloguing of files under a specific directory (folder) in the file system.
   connectorProviderClassName:        org.odpi.openmetadata.adapters.connectors.integration.basicfiles.DataFilesMonitorIntegrationProvider

   recognizedConfigurationProperties: 
      - templateQualifiedName
      - allowCatalogDelete

Data Folder Monitor Integration Connector Type:
   guid:                              6718d248-5e0c-4e32-9d38-187318caea70
   qualifiedName:                     Egeria:IntegrationConnector:Files:DataFolderMonitor
   displayName:                       Data Folder Monitor Integration Connector
   description:                       Connector maintains a DataFolder asset by monitoring the file directory where it is located.
   connectorProviderClassName:        org.odpi.openmetadata.adapters.connectors.integration.basicfiles.DataFolderMonitorIntegrationProvider

   recognizedConfigurationProperties: 
      - templateQualifiedName
      - allowCatalogDelete
  • templateQualifiedNameに、データ元の病院とquarantineのGovernance Zoneのメンバーシップを設定する
  • 加えて、データレイクフォルダに対してもテンプレートを作成する
Setting origin on Oak Dene Template ...
Setting governance zones on Oak Dene Template ...
Setting origin on Old Market Template ...
Setting governance zones on Old Market Template ...
Setting owner on Data Lake Measurements Template to tanyatidie ...
Setting governance zones on Data Lake Measurements Template ...


NewTemplate Assets:
3 assets found:
 
template:clinical-trials:drop-foot:weekly-measurements:data-lake
CSVFile 	| 856c0270-85e5-43e9-830a-a3db6feb06f0 | template:clinical-trials:drop-foot:weekly-measurements:data-lake
template:clinical-trials:drop-foot:weekly-measurements:old-market
CSVFile 	| e6d253b1-2f7f-4a2f-b224-2b7f32841169 | template:clinical-trials:drop-foot:weekly-measurements:old-market
template:clinical-trials:drop-foot:weekly-measurements:oak-dene
CSVFile 	| cec67c2b-ba2d-4cd1-9331-254193d385a2 | template:clinical-trials:drop-foot:weekly-measurements:oak-dene

--------------------------------------

Drop Foot Clinical Trial Measurements Template Asset: Data Lake [856c0270-85e5-43e9-830a-a3db6feb06f0]
  qualifiedName: template:clinical-trials:drop-foot:weekly-measurements:data-lake
  description:   Template asset for Data Lake destination folder.
  type:          CSVFile [DataFile, DataStore, Asset, Referenceable, OpenMetadataRoot]
  zones:         quarantine

--------------------------------------

Drop Foot Clinical Trial Measurements Template Asset: Old Market [e6d253b1-2f7f-4a2f-b224-2b7f32841169]
  qualifiedName: template:clinical-trials:drop-foot:weekly-measurements:old-market
  description:   Template asset for Old Market Hospital.
  type:          CSVFile [DataFile, DataStore, Asset, Referenceable, OpenMetadataRoot]
  origin:        contact=TBD, dept=DFRG1F6, org=Old Market Hospital
  zones:         quarantine

--------------------------------------

Drop Foot Clinical Trial Measurements Template Asset: Oak Dene [cec67c2b-ba2d-4cd1-9331-254193d385a2]
  qualifiedName: template:clinical-trials:drop-foot:weekly-measurements:oak-dene
  description:   Template asset for Oak Dene Hospital.
  type:          CSVFile [DataFile, DataStore, Asset, Referenceable, OpenMetadataRoot]
  origin:        contact=Robbie Records, dept=Drop Foot Research Centre, org=Oak Dene Hospital
  zones:         quarantine

--------------------------------------
  • 新しいファイルweek2.csvを転送すると、カタログ情報が自動で追加されていることが確認できる
... Waiting for completion status change
 ... Waiting for completion status change

{
    "class": "GovernanceActionProperties",
    "qualifiedName": "FTP Oak Dene Week 2",
    "domainIdentifier": 0,
    "governanceEngineGUID": "98c156b5-d8fe-4c62-ab34-f25140572f48",
    "governanceEngineName": "AssetGovernance",
    "requestType": "copy-file",
    "requestParameters": {
        "destinationFolder": "data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot",
        "sourceFile": "./sample-data/oak-dene-drop-foot-weekly-measurements/week2.csv"
    },
    "actionStatus": "ACTIONED",
    "startTime": "2021-07-04T06:48:45.594+00:00",
    "processingEngineUserId": "governDL01npa",
    "completionTime": "2021-07-04T06:48:48.165+00:00",
    "completionGuards": [
        "provisioning-complete"
    ]
}

2 assets found:
 
/deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week1.csv
CSVFile 	| 86c7713d-3b60-4715-963b-45c0356fa9ef | /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week1.csv
/deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week2.csv
DataFile 	| efae08ba-e0ec-45d8-9eef-3106b506e49a | /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week2.csv

--------------------------------------

week1.csv [86c7713d-3b60-4715-963b-45c0356fa9ef]
  qualifiedName: /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week1.csv
  type:          CSVFile [DataFile, DataStore, Asset, Referenceable, OpenMetadataRoot]
  zones:         quarantine

--------------------------------------

week2.csv [efae08ba-e0ec-45d8-9eef-3106b506e49a]
  qualifiedName: /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week2.csv
  type:          DataFile [DataStore, Asset, Referenceable, OpenMetadataRoot]
  origin:        contact=Robbie Records, dept=Drop Foot Research Centre, org=Oak Dene Hospital
  zones:         quarantine

--------------------------------------
  • GenericFolderWatchdogを作成し、ランディングエリアに配置されるAssetリスンする
Generic Folder Watchdog Governance Action Service:
   connectorType: 
       guid:                              b4629f05-710c-492b-bc9c-6e3f89e002df
       qualifiedName:                     Egeria:GovernanceActionService:Watchdog:GenericFolder
       displayName:                       Generic Folder Watchdog Governance Action Service
       description:                       Watchdog Governance Action Service that listens for events relating to file assets located in a particular folder.
       connectorProviderClassName:        org.odpi.openmetadata.adapters.connectors.governanceactions.watchdog.GenericFolderWatchdogGovernanceActionProvider
       recognizedConfigurationProperties: 
          - folderName
          - actionTargetName
          - actionTargetNameTwo
          - newElementProcessName
          - updatedElementProcessName
          - deletedElementProcessName
          - classifiedElementProcessName
          - reclassifiedElementProcessName
          - declassifiedElementProcessName
   supportedRequestTypes: 
      - member-of-folder
      - nested-in-folder
   supportedRequestParameters: 
      - ChangedProperties
      - actionTargetName
      - actionTargetNameTwo
      - folderName
      - newElementProcessName
      - updatedElementProcessName
      - deletedElementProcessName
      - classifiedElementProcessName
      - reclassifiedElementProcessName
      - declassifiedElementProcessName
   supportedActionTargetNames: 
      - folderTarget
   supportedGuards: 
      - monitoring-complete
      - monitoring-failed
  • Governance Action Processを組むことによって、一連のGovernance Actionを繋げることができる
  • 最初のProcessでは、Move/Copy Fileでファイルを移動する
  • Move/Copy Fileで移動したファイルを追跡し、リネージを維持できるように、OriginSeekerも作成する
Origin Seeker Remediation Governance Action Service:
   connectorType: 
       guid:                              1c6939c4-de2c-44aa-a044-0ec64df0560f
       qualifiedName:                     Egeria:GovernanceActionService:Remediation:OriginSeeker
       displayName:                       Origin Seeker Governance Action Service
       description:                       Follows the lineage mapping for an action target element to determine its origin.
       connectorProviderClassName:        org.odpi.openmetadata.adapters.connectors.governanceactions.remediation.OriginSeekerGovernanceActionProvider
   supportedGuards: 
      - origin-assigned
      - origin-already-assigned
      - multiple-origins-detected
      - no-origins-detected
      - no-targets-detected
      - multiple-targets-detected
      - origin-seeking-failed
  • Processの最後にAssetをデータレイクユーザーも見れるよう公開するZonePublisherを追加する
Zone Publisher Remediation Governance Action Service:
   connectorType: 
       guid:                              add1ff1b-d32d-42e7-9ebf-a2d26276aafe
       qualifiedName:                     Egeria:GovernanceActionService:Remediation:ZonePublisher
       displayName:                       Zone Publisher Governance Action Service
       description:                       Assigns the configured zone(s) to the requested asset.
       connectorProviderClassName:        org.odpi.openmetadata.adapters.connectors.governanceactions.remediation.ZonePublisherGovernanceActionProvider
       recognizedConfigurationProperties: 
          - publishZones
   supportedRequestParameters: 
      - publishZones
   supportedGuards: 
      - zone-assigned
      - no-zones-detected
      - no-targets-detected
      - zone-publishing-failed
  • 結果、Asset Governanceの登録状態は以下の通り
3 governance engines defined for engine host server governDL01
 
  Governance Engine: AssetQuality
     supporting service: Asset Analysis OMES
     status:             ASSIGNED
 
  Governance Engine: AssetDiscovery
     supporting service: Asset Analysis OMES
     status:             ASSIGNED
 
  Governance Engine: AssetGovernance
     type:               GovernanceActionEngine
     supporting service: Governance Action OMES
     status:             RUNNING
     guid:               98c156b5-d8fe-4c62-ab34-f25140572f48
     description:        Monitors, validates and enriches metadata relating to assets.
     requestTypes:       
       - move-file
       - copy-file
       - seek-origin
       - set-zone-membership
  • Week3のファイルに対して転送を実行すると、データレイクでの公開まで自動化されている
 ... Waiting for completion status change
 ... Waiting for completion status change
 ... Waiting for completion status change
 ... Waiting for completion status change

{
    "class": "GovernanceActionProperties",
    "qualifiedName": "FTP Oak Dene Week 3",
    "domainIdentifier": 0,
    "governanceEngineGUID": "98c156b5-d8fe-4c62-ab34-f25140572f48",
    "governanceEngineName": "AssetGovernance",
    "requestType": "copy-file",
    "requestParameters": {
        "destinationFolder": "data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot",
        "sourceFile": "./sample-data/oak-dene-drop-foot-weekly-measurements/week3.csv"
    },
    "actionStatus": "ACTIONED",
    "startTime": "2021-07-04T08:52:04.210+00:00",
    "processingEngineUserId": "governDL01npa",
    "completionTime": "2021-07-04T08:52:08.944+00:00",
    "completionGuards": [
        "provisioning-complete"
    ]
}

3 assets found:
 
/deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week1.csv
CSVFile 	| 86c7713d-3b60-4715-963b-45c0356fa9ef | /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week1.csv
/deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week2.csv
DataFile 	| efae08ba-e0ec-45d8-9eef-3106b506e49a | /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week2.csv
/deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week3.csv
DataFile 	| d59888fb-5a32-4f7e-af99-e74ca3d31671 | /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week3.csv

--------------------------------------

week1.csv [86c7713d-3b60-4715-963b-45c0356fa9ef]
  qualifiedName: /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week1.csv
  type:          CSVFile [DataFile, DataStore, Asset, Referenceable, OpenMetadataRoot]
  zones:         quarantine

--------------------------------------

week2.csv [efae08ba-e0ec-45d8-9eef-3106b506e49a]
  qualifiedName: /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week2.csv
  type:          DataFile [DataStore, Asset, Referenceable, OpenMetadataRoot]
  origin:        contact=Robbie Records, dept=Drop Foot Research Centre, org=Oak Dene Hospital
  zones:         quarantine

--------------------------------------

week3.csv [d59888fb-5a32-4f7e-af99-e74ca3d31671]
  qualifiedName: /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week3.csv
  type:          DataFile [DataStore, Asset, Referenceable, OpenMetadataRoot]
  origin:        contact=Robbie Records, dept=Drop Foot Research Centre, org=Oak Dene Hospital
  zones:         quarantine

--------------------------------------

Improving Data Quality Lab

このハンズオンでは、Assetについてのメタデータを自動で分析・生成するMetadata Discoveryについて扱っていきます。

  • Open Discovery Framework (ODF)
    • 特定のタイプのメタデータを発見ようにするコンポーネントのためのオープン・インターフェース
    • ツールや他のベンダーからオープンAPI経由で起動することができる
    • Governance Serviceの一部として、メタデータサーバーに接続し、メタデータの抽出や保存を行う

  • 情報アナリストのPeterは、新しいデータがデータレイクに転送された時のために、メタデータ・ディスカバリーをセットアップしている
  • governDL01Asset Analysis Open Metadata Engine Service (OMES)を実行できるように設定済み
  • Asset Analysis OMESは、Open Discovery Framework (ODF)のディスカバリー・エンジンをホストできる
  • ASSIGNED: そのGovernance EngineはEngine Hostの設定ドキュメントにリストアップされているが、メタデータサーバーから情報を取得できないステータス
  • CONFIGURING: メタデータサーバーからGovernance Engineの基本的な設定情報を取得できた後のステータス
  • RUNNING: Governance Serviceが登録された後
3 governance engines defined for engine host server governDL01
 
  Governance Engine: AssetQuality
     supporting service: Asset Analysis OMES
     status:             ASSIGNED
 
  Governance Engine: AssetDiscovery
     supporting service: Asset Analysis OMES
     status:             ASSIGNED
 
  Governance Engine: AssetGovernance
     supporting service: Governance Action OMES
     status:             ASSIGNED
  • Discovery Request Type
    • Discovery Engineに実行してほしい分析タイプの名前
    • 実行時のデフォルトパラメータも設定できる
    • Discovery Service、またはDiscovery Pipelineに紐づき、リクエストに応じて処理を実行する

  • Discovery Engineを設定した後、ステータスは以下のように変わる
  • CONFIGURINGでは、Discovery Engineは定義されているが、Discovery Request Typeを一つも持っていない状態を表す(Empty)
3 governance engines defined for engine host server governDL01
 
  Governance Engine: AssetQuality
     supporting service: Asset Analysis OMES
     status:             ASSIGNED
 
  Governance Engine: AssetDiscovery
     type:               OpenDiscoveryEngine
     supporting service: Asset Analysis OMES
     status:             CONFIGURING
     guid:               daf96ce5-2423-448c-b98a-158a74779fb2
     description:        Extracts metadata about an asset on request.
 
  Governance Engine: AssetGovernance
     supporting service: Governance Action OMES
     status:             ASSIGNED
  • Discovery Serviceを作成し、Discovery Request Typeを紐づければ、RUNNINGとなる
3 governance engines defined for engine host server governDL01
 
  Governance Engine: AssetQuality
     supporting service: Asset Analysis OMES
     status:             ASSIGNED
 
  Governance Engine: AssetDiscovery
     type:               OpenDiscoveryEngine
     supporting service: Asset Analysis OMES
     status:             RUNNING
     guid:               daf96ce5-2423-448c-b98a-158a74779fb2
     description:        Extracts metadata about an asset on request.
     requestTypes:       
       - small-csv
 
  Governance Engine: AssetGovernance
     supporting service: Governance Action OMES
     status:             ASSIGNED

Understanding an Asset Lab

このハンズオンでは、データサイエンティストのCallieが、データカタログからどのようにメタデータ参照し分析に活用するのかを見ていきます。

  • Coco PharmaceuticalsのデータサイエンティストのCallieは、臨床試験の期間で生成されたデータの分析を担当している
  • 臨床試験データはCoco Pharmaceuticalsのデータレイクにデータセットとして保存されている
  • CallieのチームはcocoMDS3を使用しており、Core OMAG Server Platformにホストされている
  • cocoMDS1で作成したカタログに対して、アセットに関するコア情報を取得できる
GET https://core:9443/servers/cocoMDS3/open-metadata/common-services/asset-consumer/connected-asset/users/calliequartile/assets/a356d389-abd4-4846-9f9c-8f59ee94004d
Returns:
{
    "class": "AssetResponse",
    "relatedHTTPCode": 200,
    "asset": {
        "class": "Asset",
        "headerVersion": 0,
        "type": {
            "class": "ElementType",
            "headerVersion": 0,
            "elementSourceServer": "cocoMDS3",
            "elementOrigin": "LOCAL_COHORT",
            "elementMetadataCollectionId": "70279005-1910-4e15-82a6-3bb0b38fa9b5",
            "elementMetadataCollectionName": "Data Lake Catalog",
            "elementCreatedBy": "peterprofile",
            "elementCreateTime": "2021-07-17T09:30:18.347+00:00",
            "elementVersion": 1,
            "elementTypeId": "2ccb2117-9cee-47ca-8150-9b3a543adcec",
            "elementTypeName": "CSVFile",
            "elementSuperTypeNames": [
                "DataFile",
                "DataStore",
                "Asset",
                "Referenceable",
                "OpenMetadataRoot"
            ],
            "elementTypeVersion": 1,
            "elementTypeDescription": "A description of a comma separated value (CSV) file",
            "status": "ACTIVE"
        },
        "guid": "a356d389-abd4-4846-9f9c-8f59ee94004d",
        "classifications": [
            {
                "class": "ElementClassification",
                "headerVersion": 0,
                "elementSourceServer": "cocoMDS3",
                "elementOrigin": "LOCAL_COHORT",
                "elementMetadataCollectionId": "70279005-1910-4e15-82a6-3bb0b38fa9b5",
                "elementMetadataCollectionName": "Data Lake Catalog",
                "elementCreatedBy": "cocoMDS1npa",
                "elementUpdatedBy": "cocoMDS1npa",
                "elementMaintainedBy": [
                    "cocoMDS1npa"
                ],
                ...

最後に

Information Architecture LabsConformance Testing LabsAsset UI Labsもやろうと思ったのですが、Egeria関連の記事書くのに既に3ヶ月はかかっており、さすがに疲れたのでやめます。

ポチポチクリックしてればセットアップが完了する今時のSaaSとは異なり、かなりインテグレーションやコーディングの労力が要求されるサービスでした。果たして流行るのかどうか…?

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.